pohyb formulare
Otázka od: Lenka Donátová
29. 11. 2002 13:29
Poradte mi prosim nekdo ve ktere udalosti je odchycen pohyb formulare,
nemuzu docilit toho aby se mi ulozili vlastnosti Top a Left formulare.
Predem diky za radu
Lenka
Odpovedá: Petr Vones
29. 11. 2002 13:19
From: "Lenka Donátová" <lenkad@nemocnice-vs.cz>
> Poradte mi prosim nekdo ve ktere udalosti je odchycen pohyb formulare,
> nemuzu docilit toho aby se mi ulozili vlastnosti Top a Left formulare.
Pokud chces ukladat pozici formulare tak je vhodnejsi to udelat pri jeho
zavreni (napriklad v udalosti OnClose) a ne pri kazde zmene jeho pozice.
Jinak toho lze docilit napriklad odchycenim zpravy WM_MOVE:
type
TForm1 = class(TForm)
Label1: TLabel;
private
procedure WMMove(var Message: TWMMove); message WM_MOVE;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.WMMove(var Message: TWMMove);
begin
inherited;
Label1.Caption := Format('%d, %d', [Left, Top]);
end;
Petr Vones
Odpovedá: likeapear
29. 11. 2002 13:34
nevim, jestli je na to vhodna udalost, ja jsem pouzival zpravy
WM_WINDOWPOSCHANGING
WM_WINDOWPOSCHANGED
likeapear
> Poradte mi prosim nekdo ve ktere udalosti je odchycen pohyb formulare,
> nemuzu docilit toho aby se mi ulozili vlastnosti Top a Left formulare.
> Predem diky za radu
> Lenka
Odpovedá: Jiří Matějka
29. 11. 2002 14:36
Neslo by to na OnPaint - pri pohybu se formular prekreslit musi... Ale
jestli to funguje nevim, nezkousel sem...
Jirka Matejka
----- Original Message -----
From: "Lenka Donátová" <lenkad@nemocnice-vs.cz>
To: <delphi-l@clexpert.cz>
Sent: Friday, November 29, 2002 1:06 PM
Subject: pohyb formulare
> Poradte mi prosim nekdo ve ktere udalosti je odchycen pohyb formulare,
> nemuzu docilit toho aby se mi ulozili vlastnosti Top a Left formulare.
> Predem diky za radu
> Lenka
>
>
---
Odchozí zpráva neobsahuje viry.
No viruses found in the outgoing message.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.423 / Virová báze: 238 - datum vydání: 25.11.2002
Odpovedá: Petr Vones
29. 11. 2002 15:53
From: "Jiří Matějka" <matejka@stemmark.cz>
> Neslo by to na OnPaint - pri pohybu se formular prekreslit musi... Ale
Nemusi, prekleslovani se ridi necim uplne jinym nez pohybem formulare. Ten se
muze navic prekleslit i kdyz se s vim vubec nehybe.
Petr Vones
Odpovedá: Danik Frantik
29. 11. 2002 15:15
To tezko. Po presunu se nemusi volat OnPaint (pokud je zapnute prekreslovani
behem tazeni a form se nesune mimo obraz).
Danik
-----Original Message-----
Behalf Of Jiří Matějka
Neslo by to na OnPaint - pri pohybu se formular prekreslit musi... Ale
jestli to funguje nevim, nezkousel sem...
Odpovedá: Stanislav Kochan
29. 11. 2002 15:46
Podla mna by mohlo pomoct odchytenie WM_MOVE.
...
protected
procedure WndProc(var Msg: TMessage);override;
...
procedure TForm1.WndProc(var Msg: TMessage);
begin
inherited WndProc(Msg);
case Msg.Msg of
WM_MOVE: SavePosition;
end;
end;
> Poradte mi prosim nekdo ve ktere udalosti je odchycen pohyb formulare,
> nemuzu docilit toho aby se mi ulozili vlastnosti Top a Left formulare.
> Predem diky za radu
> Lenka